<?php 
/*-- Project Introduce --*/

/**
 * 控制器类 Login 
 *
 * @access public
 */
class JJ_RemoveContact 
	extends JCAT_Controller 
{

	/**
	 * 构造函数 
	 * 
	 * @access	public
	 * @param	$aParent	JCAT_IController	父控制器 
	 * @return	void
	 */
	public function JJ_RemoveContact(JJ_MainController $aParent)
	{
		// 调用父类构造函数
		$this->JCAT_Controller(__CLASS__,$aParent) ;
	}

	
	/**
	 * 执行入口函数 
	 * 
	 * @access	public
	 * @param	$arrArg=array	array	参数 
	 * @return	bool
	 */
	public function MainRun(array $arrArg=array())
	{
		JCAT_ASSERT::ASSERT_( isset($arrArg['ContactJID']) ,JCAT_Language::Sentence('缺少参数 ContactJID') ) ;;
		
		// 取得 jabber 连接
		$aController = $this->GetParentController() ;
		$aMainController = $aController->GetTopController() ;
		$aXMPPConn = $aMainController->GetXMPPConnect() ;

		// 发送 注册请求
		$aXMPPConn->set_handler("rosterremoved",$this,"OnSuccessed");
		$aXMPPConn->set_handler("rosterremovefailure",$this,"OnFailure");
		$aXMPPConn->roster_remove($arrArg['ContactJID']) ;
			
		// 等待 操作结果
		$this->bLooping = true ;
		while($this->bLooping)
		{
			usleep(200000);
			$aXMPPConn->loop_execute_once() ;
		}
		
		// 返回操作结果
		return $this->bSuccess ;
	}
	
	/**
	 * Description
	 *
	 * @access	public
	 * @return	void
	 */
	public function OnSuccessed()
	{
		JCAT_Gtk::MessageDialog(JCAT_Language::Sentence('联系人已删除。')) ;
		
		$this->bLooping = false ;
		$this->bSuccess = true ;
	}

	/**
	 * Description
	 *
	 * @access	public
	 * @return	void
	 */
	public function OnFailure()
	{
		JCAT_Gtk::MessageDialog(JCAT_Language::Sentence('操作超时')) ;
		
		$this->bLooping = false ;
		$this->bSuccess = false ;
	}
}

?>